package com.yida.gwj.common.mapper;

import com.yida.gwj.common.domain.GwjBaseCommunity;
import com.yida.gwj.common.domain.dto.GwjBaseCommunityDTO;
import com.yida.gwj.common.domain.dto.GwjBaseCommunityListDTO;
import com.yida.gwj.common.domain.request.GwjBaseBuildRequest;
import com.yida.gwj.common.domain.request.GwjBaseCommunityQueryRequest;

import java.util.List;

/**
 * 基础数据（小区信息）Mapper接口
 *
 * @author lqq
 * @date 2022-11-14
 */
public interface GwjBaseCommunityMapper {

	/**
	 * 查询基础数据（小区信息）
	 *
	 * @param id 基础数据（小区信息）主键
	 * @return 基础数据（小区信息）
	 */
	GwjBaseCommunity selectGwjBaseCommunityByGwjBaseCommunityId(Long id);

	/**
	 * 查询基础数据（小区信息）列表
	 *
	 * @param community 基础数据（小区信息）
	 * @return 基础数据（小区信息）集合
	 */
	List<GwjBaseCommunity> selectCommunityList(GwjBaseCommunity community);

	/**
	 * 查询小区详细信息
	 * lqq
	 *
	 * @param buildRequest 请求参数
	 * @return /
	 */
	GwjBaseCommunityDTO selectGwjBaseCommunityDetail(GwjBaseBuildRequest buildRequest);

	/**
	 * 新增基础数据（小区信息）
	 *
	 * @param community 基础数据（小区信息）
	 * @return 结果
	 */
	int insertGwjBaseCommunity(GwjBaseCommunity community);

	/**
	 * `
	 * 修改基础数据（小区信息）
	 *
	 * @param community 基础数据（小区信息）
	 * @return 结果
	 */
	int updateGwjBaseCommunity(GwjBaseCommunity community);

	/**
	 * 删除基础数据（小区信息）
	 *
	 * @param id 基础数据（小区信息）主键
	 * @return 结果
	 */
	int deleteGwjBaseCommunityByGwjBaseCommunityId(Long id);

	/*******************新增方法保留区******************/

	/**
	 * 查询基础数据（小区信息）列表
	 *
	 * @param gwjBaseCommunity 基础数据（小区信息）
	 * @return 基础数据（小区信息）集合
	 */
	public List<GwjBaseCommunity> selectGwjBaseCommunityList(GwjBaseCommunity gwjBaseCommunity);

	/**
	 * 根据项目名查询基础数据（小区信息）
	 *
	 * @param communityName 基础数据（小区信息）主键
	 * @return 基础数据（小区信息）
	 */
	public GwjBaseCommunity selectGwjBaseCommunityByGwjBaseCommunityName(String communityName);

	/**
	 * 新增导入基础数据（小区信息）
	 *
	 * @param gwjBaseCommunity 基础数据（小区信息）
	 * @return 结果
	 */
	public int insertImportGwjBaseCommunity(GwjBaseCommunity gwjBaseCommunity);

	/**
	 * 新增导入基础数据（小区信息）
	 *
	 * @param gwjBaseCommunity 基础数据（小区信息）
	 * @return 结果
	 */
	public int updateImportGwjBaseCommunity(GwjBaseCommunity gwjBaseCommunity);

	/**
	 * 根据项目id组进行批量删除
	 *
	 * @param gwjBaseCommunityIds /
	 * @return 结果
	 */
	public int deleteGwjBaseCommunityByGwjBaseCommunityIds(Long[] gwjBaseCommunityIds);
	/*******************新增方法保留区******************/

	/**
	 * 查询基础数据（小区信息）列表
	 *
	 * @param request 基础数据（小区信息）
	 * @return 基础数据（小区信息）集合
	 */
	List<GwjBaseCommunityListDTO> selectCommunityDtoList(GwjBaseCommunityQueryRequest request);

}
